![]() ADVANCED SCREEN CONTENT CODING SOLUTION
专利摘要:
METHOD FOR ENCODING SCREEN CONTENT IN A BITS STREAM AND PROCESSOR FOR ENCODING SCREEN CONTENT IN A BITS STREAM.The present invention relates to a method and apparatus for encoding screen content into a bit stream by selecting a color palette table for a screen content encoding unit (CU), creating a map color index map which has indices for the encoding unit (CU) and the encoding of the selected color palette table and color index map for the CU in a bitstream. 公开号:BR112016011471A2 申请号:R112016011471-0 申请日:2014-11-24 公开日:2021-05-18 发明作者:Zhan Ma;Wei Wang;Haoping Yu;Xian Wang;Jing Ye 申请人:Huawei Technologies Co., Ltd.; IPC主号:
专利说明:
[001] [001] The present disclosure refers, in general, to the encoding of screen content. BACKGROUND [002] [002] Screen content encoding poses new challenges to video compression technology due to its distinct signal characteristics compared to conventional natural videos. There seem to be a few promising techniques for encoding advanced screen content, for example, pseudo-string matching, color palette encoding, and intra-motion compensation or intra-block copying. [003] [003] Among these techniques, pseudo-character string matching presents the highest gain for lossless encoding, but with significant complexity overhead and difficulties in lossy encoding mode. Color palette coding is designed for screen content under the premise that non-camera captured content typically contains a limited few distinct colors, rather than the continuous color tone in natural videos. Although pseudo-string matching and color palette coding methods have great potential, intra-motion compensation or intra-block copy was adopted in draft (WD) version 4 and HEVC range extension reference software (HEVC RExt). ) in progress for screen content encoding. This is mainly due to the fact that the motion estimation and compensation approach has been studied extensively for decades, as well as its idea and practical implementation being quite easy (especially for hardware). [004] [004] However, intra-block copy encoding performance is limited due to its fixed block structure partitions. On the other hand, performing block matching, something similar to intrapicture motion estimation, also increases encoder complexity significantly in both computation and memory access. SUMMARY [005] [005] This disclosure is directed at an advanced screen content encoding solution. [006] [006] In an exemplary embodiment, a method for encoding screen content into a bit stream selects a color palette table for a screen content encoding unit (CU). The color palette table created is for the CU and a color palette table is created for a neighboring CU. A color index map that has indexes to the coding unit (CU) of the screen content is created using the selected color palette table. The selected color palette table and color index map are encoded/compressed for each of a plurality of CUs in a bitstream. BRIEF DESCRIPTION OF THE FIGURES [007] [007] For a more complete understanding of the present disclosure and its advantages, reference is now made to the following descriptions, taken in conjunction with the accompanying drawings, in which similar numerals designate similar objects, and in which: [008] [008] Figure 1 illustrates a screen content coding solution with the use of color palette table mode and index map or palette mode, according to an exemplary embodiment of this disclosure; [009] [009] Figure 2 illustrates a screen content decoding solution for color palette table mode and index map or palette mode; [010] [010] Figure 3 illustrates a screen content solution process or workflow for this color palette table mode and index map or palette mode of a CU; [011] [011] Figure 4 illustrates a conventional G, B, R in flat mode (left) to compressed mode (right); [012] [012] Figure 5 illustrates the color palette table regeneration with the use of neighboring reconstructed blocks; [013] [013] Figure 6 illustrates an index map that is analyzed from a screen content into real words; [014] [014] Figure 7 illustrates a piece of a segment for a 1-D search after horizontal scanning; [015] [015] Figure 8 illustrates a module of U_PIXEL; [016] [016] Figure 9 illustrates a U_ROW module; [017] [017] Figure 10 illustrates a U_CMP module; [018] [018] Figure 11 illustrates a U_COL module; [019] [019] Figure 12 illustrates a module of U_2D_BLOCK; [020] [020] Figure 13 is an illustration of horizontal and vertical scan for index map processing of an exemplified CU; [021] [021] Figure 14A is an illustration of a 4:2:0 chroma sampling format; [022] [022] Figure 14B is an illustration of a 4:4:4 chroma sampling format; [023] [023] Figure 15 illustrates an interpolation between 4:2:0 and 4:4:4; [024] [024] Figure 16 illustrates the index map processing with top/left row temporary storage; [025] [025] Figure 17 illustrates the device and methods/flows incorporated into the current HEVC; [026] [026] Figure 18 illustrates an example of a communication system. [027] [027] Figure 19A and Figure 19B illustrate exemplary devices that can implement the methods and teachings in accordance with this disclosure. DETAILED DESCRIPTION [028] [028] In this disclosure, an advanced screen content encoding solution that overcomes a range of High Efficiency Video Encoding (HEVC) (such as HEVC Version 2 or HEVC RExt) is described. This new solution includes several algorithms that are specifically designed to encode screen content. These algorithms include pixel representation using a color palette or a color table, referred to herein as a color palette table, color palette compression, color index map compression, search in string and residual compression. This technology is developed, harmonized, and can be integrated with the HEVC range extension (RExt) and future HEVC extensions to support efficient screen content encoding. However, this technology could be deployed with any existing video standards. For simplicity, HEVC RExt is used as an example in the description below, and HEVC RExt software is used to describe and demonstrate the compression efficiency. This solution is integrated into an additional mode using a color palette table and index map, defined in this document as a color palette mode, in HEVC to demonstrate performance. [029] [029] The concept and description of this disclosure are illustrated in the Figures. Figure 1 shows an encoder 10 that has a processor 12 that includes memory, and Figure 2 shows a decoder 14 that has a processor 16 and memory, which together illustrate an exemplary embodiment of an encoding and decoding solution. [030] [030] Basically, a high-efficiency color palette compression (CPC) method is performed on each encoding unit (CU). An encoding unit is a basic operating unit in HEVC and HEVC RExt, which is a square block of pixels that consists of three components (ie RGB or YUV or XYZ). [031] [031] At each CU level, the CPC method includes two main steps. First, processor 12 derives or generates a color palette table in the first step. This table is sorted according to a histogram (ie, frequency of occurrence of each color value) or its actual color intensity, or any arbitrary method in order to increase the efficiency of the coding process to follow. Based on the derived color palette table, each pixel in the original CU is converted to its color index within the color palette table. One contribution of this disclosure is the technology to efficiently encode, such as with the use of compression, the color palette table and color index map of each CU in the stream. On the receiver side, processor 16 analyzes the compressed bitstream to reconstruct, for each CU, the complete color palette table and color index map, and then further derives the pixel value in each position by combining the color index and the color palette table. [032] [032] In an illustrative example of this disclosure, a CU with NxN pixels (N=8, 16, 32, 64 for HEVC compatibility) is assumed. The CU typically contains three chrominance (chroma) components (ie G, B, R, or Y, Cb, Cr, or X, YZ) at a different sampling ratio (ie 4:4:4 , 4:2:2, 4:2:0). For simplicity, 4:4:4 sequences are illustrated in the revelation. For 4:2:2 and 4:2:0 video sequences, chroma sampling boost could be applied to obtain 4:4:4 sequences, or each color component could be processed independently. Then, the same procedure described in this disclosure can be applied. For 4:0:0 monochrome videos, this can be treated as an individual 4:4:4 shot without two other shots. All methods for 4:4:4 can be applied directly. Compressed or Flat [033] [033] This method is shown for the CTU or CU Block in Figure 1. First of all, a flag is set, called enable_packed_component_flag, for each CU to indicate whether the current CU is processed using packed or conventional plane mode (ie G, B, R or Y, U, V components are processed independently). Figure 4 illustrates a conventional G, B, R in flat mode (left) to compressed mode (right). YUV or another color format could be processed in the same way as exemplified for RGB content. [034] [034] Both compressed mode and flat mode have their own advantages and disadvantages. For example, flat mode supports parallel color component processing for G/B/R or Y/U/V. However, it could suffer from low coding efficiency. Compressed mode can share the header information (such as the color palette table and index map in this disclosure) for that CU among different color components. However, the same could break the parallelism. An easy way to decide whether the current CU should be encoded in compressed form is to measure rate-distortion (R-D) cost. The enable_packed_component_flag is used to explicitly flag the encoding mode for the decoder. [035] [035] Furthermore, to set enable_packed_component_flag at CU level for low level handling, it can be duplicated at slice header or even at sequence level (eg Sequence Parameter Set or Pa Set - Image ramers) to allow slice-level or sequence-level processing, depending on the requirement of the specific application. Derivation of Color Palette Table and Index Map [036] [036] As shown in Figure 1 for Processes 1 and 3, for each CU, the pixel locations are traversed and the color palette table and the index map for subsequent processing are derived. Each distinct color is sorted in the color palette table depending on its histogram (ie frequency of occurrence) or its intensity or any arbitrary method in order to increase the efficiency of the coding process below. For example, if the encoding process uses a differential pulse code modulation (DPCM) method to encode the difference between adjacent pixels, the optimal encoding result can be obtained if the adjacent pixels are assigned adjacent color index. in the color palette table. [037] [037] After getting the color palette table, each pixel is mapped to the corresponding color index to form the current CU index map. Index map processing is described in the subsequent section. [038] [038] For a conventional flat CU, each color or chrominance component can have its individual color palette table, such as colorTable_Y, colorTable_U, colorTable_V or colorTable_R, colorTable_G, colorTable_B, just to name a few here for example. However, the color palette table for a main component can be derived, such as Y in YUV or G in GBR, and shared for all components. Typically, by this sharing, color components other than Y or G would have some dissonance in relation to their original pixel colors from those shared in the color palette table. The residual mechanism (such as HEVC coefficient encoding methods) is then applied to encode those dissonant residues. On the other hand, for a compressed CU, a single color palette table is shared among all components. [039] [039] A pseudocode is provided to exemplify color palette table and index map derivation as follows: deriveColorTableIndexMap() { deriveColorTable(); deriveIndexMap(); } deriveColorTable(src, cuWidth, cuHeight, maxColorNum) { // src – input video source in planar or packed mode // cuWidth, cuHeigth – width and height of current CU /* maxColorNum – max num of colors allowed in color table*/ /*transverse */ // // memset(colorHist, 0, (1<<bitDepth)*sizeof(UINT)) pos=0; cuSize=cuWidth*cuHeight; while (pos<cuSize) { colorHist[src[os++]]++; } /*just pick non-zero entry in colorHist[] for color intensity ordered table*/ j=0; for(i=0;i<(1<<bitDepth);i++) { if(colorHist[i]!=0) colorTableIntensity[j++] = colorHist[i]; } colorNum=j; /*quicksort for histgram*/ colorTableHist = quickSort(colorTableIntensity, color- Num); /*if maxColorNum >= colorNum, all colors will be picked*/ /*if maxColorNum < colorNum, only maxColorNum colors will be picked for colorTableHist. [040] [040] For Process 1 in Figure 1, color palette table processing involves coding by processor 12 the size of a color palette table (ie, the total number of distinct colors) and each one of the colors themselves. A larger part of the bits is consumed by encoding each color in a color palette table. Consequently, the focus is placed on color coding (or coding of each entry in the color palette table). [041] [041] The most direct method to encode colors in a color palette table is with the use of pulse code modulation (PCM) style algorithm, in which each color is coded independently. Alternatively, the closest prediction for a successive color can be applied and then the prediction delta can be coded instead of the default color depth, which is DPCM (differential PCM) style. Both methods can be further coded by entropy using an equal probability model or adaptive context model, depending on the trade-off between complexity costs and coding efficiency. [042] [042] Here, another advanced scheme is revealed, called neighbor color palette table merge, where a color_table_merge_flag is set to indicate whether the current CU uses the color palette table from its left CU or higher. If not, the current CU will carry the color palette table flag explicitly. For the merge process, another color_table_merge_direction indicates the merge direction from the top CU or from the left CU. Of course, candidates could be beyond the current top CU or left CU, eg top left, top right, etc. However, the upper CU and the left CU are used in this revelation to exemplify the idea. For either of these, each pixel is compared to entries in an existing color palette table and assigned an index that produces the minimum prediction difference (ie, the pixel subtracts the closest color in the palette table. colors) via deriveIdx-Map(). For the case where the prediction difference is different from zero, all these residuals are coded using the residual mechanism of HEVC RExt. It should be noted that the use or not of the fusion process can be decided by the R-D cost. [043] [043] There are several ways to generate the neighboring color palette tables to be used in the merge process in encoding the current CU. Depending on your deployment, one of them requires updating in both the encoder and the decoder and the other is an encoder-side process only. [044] [044] Update in both encoder and decoder: In this method, the color palette table of neighboring CUs is generated on the available reconstructed pixels, regardless of depth, CU size and so on. For each CU, reconstructions are retrieved for its neighbor CU at the same size and depth (assuming the color similarity would be higher in this case). For example, if a current CU is 16x16 with depth = 2, it doesn't matter the partition of its neighboring CUs (eg 8x8 with depth = 3 for left CU and 32x32 with depth =1 for top CU) , the pixel offset (=16) will be located from the current CU origin to the left to process the left 16x16 block and up to the top 16x16 block as shown in Figure 5. Must Note that both the encoder and decoder must maintain this process. [045] [045] Process restricted to encoder only: For this method, the merge process occurs when a current CU shares the same size and depth as its top and/or left CU. The available neighbor color palette tables are used to derive the current CU color index map for subsequent operations. For example, for a current 16x16 CU, if its neighboring CU, ie positioned above or to the left, is coded using the color palette table and index method, its color palette table is used for the current CU directly to derive the RD cost. This merge cost is compared to the case where the current CU derives its color palette table explicitly (as well as other conventional modes existing in HEVC or HEVC RExt). Whichever produces the lowest R-D cost is chosen as the final mode to be written to the output bitstream. As per visa, it is only required. [046] [046] For Process 3 in Figure 1, to encode the color index map, few solutions have been studied, such as RUN, RUN and COPY_ABOVE mode, and adaptive neighbor index prediction. In this disclosure, a 1D string matching approach and its 2D variation are revealed to encode the index map encoding. At each position, it finds its matched point and records the matched distance and length for a 1D string match, or width/height for a 2D string match. For an unmatched position, its index strength, or delta value between its index strength and the predicted index strength, is directly encoded. [047] [047] Here is revealed is a direct 1D search method on the color index map. Referring to Figure 6, an index map is analyzed from real word screen content. Figure 7 shows a chunk of a segment after a 1D search (that is, just the beginning of this index map). [048] [048] Over this 1D color index vector, string matching is applied. An example of such a 1D string match is given below. For the first position of each index map, such as 14 as shown in Figure 7, since there is still no reference in temporary storage, that first index is treated as the "unmatched pair" where it is given. -1 and 1 for their corresponding distance and length, denoted as (dist, len) = (-1, 1). For the 2nd index, [049] [049] Here is a summary for the encoding procedure using the exemplified index shown in Figure 7. dist = -1, len = 1, idx=14 (unmatched) dist= 1, len = 2 (matched) dist = -1, len = 1, idx=17 (unmatched) dist= 1, len = 3 (matched) dist = -1, len = 1, idx= 6 (unmatched) dist= 1, len = 25 (matched) dist = 30, len = 4 (matched) /*for the "17" which appeared before*/ …. [050] [050] A pseudocode is given for this matched pair derivation, ie, Void deriveMatchedPairs ( TComDataCU* pcCU, Pel* pIdx, Pel* pDist, Pel* pLen, UInt uiWidth, UInt uiHeight) { // pIdx is a idx CU bounded within uiWidth*uiHeight UInt uiTotal = uiWidth*uiHeight; UInt uiIdx = 0; [051] [051] The following steps are taken when a 2D search variation is used: [052] [052] 1. Identify the location of the current pixel and the reference pixel as a starting point, [053] [053] 2. Apply a horizontal 1D string match to the right direction of the current pixel and the reference pixel. The maximum search length is restricted by the end of the current horizontal row. Register the maximum search length as right_width [054] [054] 3. Apply a horizontal 1D string match to the left direction of the current pixel and the reference pixel. The maximum search length is restricted by the beginning of the current horizontal row. Register the maximum search length as left_width [055] [055] 4. Perform the same 1D string matching in the next row, using pixels below current pixel and reference pixel as new current pixel and reference pixel [056] [056] 5. Stop until right_width == left_width == 0. [057] [057] 6. Now, for each height[n] = {1, 2, 3…}, there is a corresponding array of width[n] {{left_width[1], right_width[1]}, {left_width[2] , right_width[2]}, {left_width[3], right_width[3]}…} [058] [058] 7. Define a new array min_width {{lwidth[1], rwidth[1]}, {lwidth[2], rwidth[2]}, {lwidth[3], rwidth[3]}…} for each height[n], where lwidth[n] = min(left_width[1:n-1]), rwidth[n] = min(right_width[1:n-1]) [059] [059] 8. An array of size {size[1], size[2], size[3]…} is also defined, where size[n] = height[n] x (lwidth[n]+ hwidth[n]) [060] [060] 9. Assume that size[n] contains the maximum value in the size array, where the 2D string match width and height are selected using {lwidth[n], rwidth[n] , corresponding height[n]} [061] [061] One way to optimize 1D or 2D search speed is to use execution hashing. A running 4-pixel hash structure is described in this disclosure. A running hash is calculated for each pixel in the horizontal direction to generate a horizontal hash matrix running_hash_h[]. Another running hash is computed over running_hash_h[] to generate a 2D hash array running_hash_hv[]. Each value match in this 2D hash array represents a 4x4 block match. To perform a 2D match, as many 4x4 block matches as possible must be found before performing pixel matching for its neighbors. Since the comparison with respect to pixel is limited to pixels 1 to 3, the search speed can be increased dramatically. [062] [062] From the above description, the matched widths of each row are different from each other, therefore each row has to be processed separately. For low efficiency and low complexity, a block-based algorithm is unveiled, which can be used in both a hardware and software deployment. Much like standard motion estimation, this algorithm processes one rectangular block at a time. [063] [063] Taking a 4x4 block as an example. The basic unit in this design is called U_PIXEL, as shown in Figure 8. The encoded signal is a flag that indicates whether the reference pixel has already been encoded from the previous string match operation. Optionally, the input signal Cmp[n-1] can be forced to "0", which allows the removal of the last bridge "OR" from the U_PIXEL module. [064] [064] The first step is to process each row in parallel. Each pixel in a row of rectangle is assigned to a block of U_PIXEL; this processing unit is called U_ROW. An example of the processing unit for the first row is shown in Figure 9. [065] [065] Four U_ROW units are required to process this 4x4 block, as shown in Figure 10. Its output is an array of cmp[4][4]. [066] [066] The next step is to process each column of the cmp array in parallel. Each cmp in a column of the cmp matrix is processed by the processing unit U_COL, as shown in Figure 11. [067] [067] Four U_COL units are required to process this 4x4 block. Its output is an array of rw[4][4], as shown in Figure 12. [068] [068] The number of zeros in each row of rw[n][0-3] is then counted and the 4 results are recorded in the matrix r_width[n]. Note that r_width[n] is equal to rwidth[n] in step #7. l_width[n] is generated in the same way. The min_width array in step #7 can be obtained as {{l_width[1], r_width[1]}, { l_width[2], r_width[2]}, { l_width[3], r_width[3]}…} [069] [069] This hardware architecture can be modified to fit the parallel processing structure of any modern CPU/DSP/GPU. A simplified pseudocode for rapid software deployment is listed below. // 1. Generate array C[][] [070] [070] There is no data dependency on each cycle, so a traditional software parallel processing method such as cycle unfolding, MMX/SSE, can be applied to increase execution speed. [071] [071] This method can also be applied to a 1D survey if the number of rows is limited to one. A simplified pseudocode for deploying fast 1D survey software based on fixed length is listed below. // 1. Generate array C[] For(x = 0; x < width; ++x) { tmp1 = cur_pixel ^ ref_pixel; tmp2 = tmp1[0] | tmp1[1] | tmp1[2] | tmp1[3] | tmp1[4] | tmp1[5] | tmp1[6] | tmp1[7]; C[x] = tmp2 &(!coded[x]); } // 2. Generate array RW[] or LW[] If (last "OR" operation in U_PIXEL module is removed) Assign RW[] = C[] [072] [072] After both the 1D match and the 2D match are completed, max (ld length, 2d (width x height)) is chosen as the winner. If the 2D match lwidth is different from zero, the length of the previous 1D match (length = length – lwidth) needs to be adjusted to avoid overlapping between the previous 1D match and the current 2D match. If the length of the previous 1D match becomes zero after adjustment, it is removed from the list of matches. [073] [073] The next start location is calculated using current_location + length if the previous match is a 1D match, or current_location + (lwidth+rwidth) if the previous match is a 2D match. When a 1D match is performed, if any pixel to be matched is in any previous 2D match region where its location has already been covered by a 2D match, the next pixels will be scanned until a pixel location is found in that it has not been encoded by previous correspondence. [074] [074] After obtaining these matched pairs, an entropy mechanism is applied to convert these symbols to binary stream. Here the idea of using the equal probability context mode is exemplified. An advanced adaptive context mode could also be applied for better compression efficiency. // loop for each CU, uiTotal=uiWidth*uiHeight, uiIdx=0; while ( uiIdx < uiTotal) { // *pDist: store the distance value for each matched pair // *pIdx: store the index value for each matched pair // *pLen: store the length value for each matched pair // encodeEP( ) and encodeEPs() are reusing HEVC or similar by-pass entropy coding. if (pDist[uiIdx] == -1 ) { //encode one-bin with equal-probability model to indicate the //whether current pair is matched or not. unmatchedPairFlag = TRUE; encodeEP(unmatchedPairFlag); //uiIndexBits is controlled by the color table size // i.e., for 24 different colors, we need 5 bits, for 8 colors, 3 bits encodeEPs(pIdx[uiIdx], uiIndexBits); uiIdx++; } else [075] [075] The encoding procedure for each matched pair is shown. Correspondingly, the decoding process for the matched pair is as follows. // loop for each CU, uiTotal=uiWidth*uiHeight, uiIdx=0; while ( uiIdx < uiTotal) { // *pDist: store the distance value for each matched pair [076] [076] It should be noted that only pixels in an unmatched position are encoded in a bit stream. For a more accurate statistical model, just use these pixels and their neighbors for Color Palette Table Derivation, instead of using all pixels in that CU. [077] [077] For these index or delta outputs, they usually contain limited number of single value under certain encoding mode. This disclosure introduces a second palette delta table to utilize this observation. This palette delta table can be built after all literal data is obtained in that CU, this will be explicitly signaled in the bitstream. Alternatively, it can be built adaptively during the encoding process so that the table does not have to be included in the bit stream. A delta_color_table_adaptive_flag is defined for this choice. [078] [078] Another advanced scheme is provided, called Neighbor Color Palette Delta Table Fusion. For adaptive palette delta generation, an encoder can use a palette delta from the top or left CU as the initial starting point. For non-adaptive palette generation, the encoder can also use a palette delta from the top or left CU and compare the RD cost between top, left and current CU. [079] [079] A delta_color_table_merge_flag is defined to indicate whether a current CU uses the color palette delta table from its left or top CU. A current CU carries the color palette delta table flag explicitly only when delta_color_table_adaptive_flag==0 and delta_color_table_merge_flag==0 at the same time. [080] [080] For a merge process, if delta_color_table_merge_flag is declared, another delta_color_table_merge_direction is set to indicate whether the merge candidate is from the upper or left CU. [081] [081] An example of a coding process for an adaptive palette delta generation is shown as follows. On a decoding side, whenever a decoder receives literal data, it generates a palette delta based on reverse steps. [082] [082] 10. Define palette_table[] and palette_count[] [083] [083] 11. Initialize palette_table(n) = n (n = 0…255), alternatively, you can use palette_table[] from upper or left CU as initial value [084] [084] 12. Initialize palette_count(n) = 0 (n = 0…255), alternatively you can use palette_count[] from the upper or left CU as the initial value [085] [085] 13. For any value of delta c': [086] [086] 1) Find n so that palette_table(n) == delta c' [087] [087] 2) Use n as the new index of delta c' [088] [088] 3) ++palette_count(n) [089] [089] 4) Sort palette_count[] so that it is in descending order [090] [090] 5) Sort palette_table[] accordingly [091] [091] 14. Go back to step 1 until all delta c' in the current LCU are processed [092] [092] For any block that includes both text and graphics, a mask flag is used to separate the text section and the graphics section. The text section is compressed by the method described above; the graphics section is compressed by another compression method. [093] [093] It should be noted that due to the fact that the value of any pixel covered by the mask flag has been encoded by a lossless text layer, these pixels in the graphics section may be like "worry-free pixel". When the graphics section is compressed, any arbitrary value can be assigned to a pixel in order to obtain optimal compression efficiency. [094] [094] Since the lossy part could be handled by the color palette table derivation, the index map has to be lossless compressed. This allows for efficient processing using a 1D or 2D string match. For this disclosure, 1D or 2D string matching is restricted to the current LCU, but the search window can extend beyond the current LCU. It should also be noted that the matched distance can be coded using a pair of motion vectors in the horizontal and vertical directions, ie (MVy=matched_distance/cuWidth, MVy=matched_distance-cuWidth*MVy). [095] [095] Since the image would have a different spatial texture orientation in local regions, 1D searching can be allowed in the horizontal or vertical directions by setting the color_idx_map_pred_direction indicator. Optimal index scan direction can be made based on R-D cost. Figure 6 shows the sweep directions, starting from the first position. The horizontal and vertical scan pattern is further illustrated in Figure 9. Consider an 8x8 CU as an example. The derive-MatchPairs() and associated entropy encoding steps are performed twice for both horizontal and vertical sweep pattern. In this way, the final sweep direction is chosen with the lowest RD cost. Enhanced Binarization [096] [096] As shown in Figure 13, the color palette table and a pair of information matched to the color index map are coded. They are encoded using fixed-length binarization. Alternatively, variable length binarization can be used. [097] [097] For example, for color palette table encoding, the table can have 8 different color values. Therefore, it only contains 8 different indices in the color index map. Instead of using 3 fixed binaries to encode each index value equally, only one bit can be used to represent the preceding pixel, eg 0. Then the remaining 7 pixel values use a code word of fixed length, such as 1000, 1001, 1010, 1011, 1100, 1101 and 1110, to encode the color index. This is based on the fact that the background color can occupy the highest percentage and therefore a special codeword for it saves the total binaries. This scenario is common for screen content. Considering a 16x16 CU, for binarization of 3 fixed binaries, it requires 3x16x16=768 binaries. Also, let the index 0 be the antecedent color, which occupies 40%, while other colors are equally distributed. In this case, it only requires 2.8x16x16<768 binaries. [098] [098] For matched pair encoding, the maximum value can be used to limit its binarization, given the restricted implementation of this approach within the current CU area. Mathematically, the matched distance and length could be as long as 64x64=4K in each case. However, this could not happen together. For each matched position, the matched distance is limited by the distance between the current position and the first position in the reference buffer (such as the first position in the current CU, as an example), eg L. By - [099] [099] Furthermore, for the color palette table and index map, the residue coding could be significantly improved by a different binarization method. As for the HEVC RExt and HEVC versions, the transform coefficient is binarization with the use of variable length codes on the premise that the magnitude of the residual must be small after prediction, transform, and quantization. However, after introducing the transform jump, especially for the transform jump in screen content with distinct color, commonly there are residuals with larger and random value (not close to the smaller relative value "1", "2", "0" ). If the actual HEVC coefficient binarization is used, it ends up producing a very long codeword. Alternatively, using length binarization saves code length for the residuals produced by index and color palette table encoding mode. Adaptive Chroma Sampling for Mixed Content [0100] [0100] The above provides various techniques for encoding high-efficiency screen content under the HEVC/HEVC-RExt framework. In practice, in addition to pure screen content (such as text, graphics) or pure natural video, there is also content that contains both screen material and camera-captured natural video -- called mixed content. Currently, mixed content is treated with 4:4:4 chroma sampling. However, for the portion of natural video captured by the camera embedded in this mixed content, 4:2:0 chroma sampling may be sufficient to provide quality without loss of perception. This is due to the fact that the human vision system is less sensitive to spatial changes in chroma components compared to that of luma components. Consequently, downsampling is typically performed on the chroma part (eg the popular 4:2:0 video format) to achieve considerable bitrate reduction while maintaining the same rebuilt quality. [0101] [0101] The present disclosure provides a new flag (ie, enable_chroma_subsampling) that is set and signaled at the CU level recursively. For each CU, the encoder determines whether it is being encoded using 4:2:0 or 4:4:4 according to the rate-distortion cost. [0102] [0102] Figure 14A and Figure 14B show the chroma sampling formats 4:2:0 and 4:4:4. [0103] [0103] On the encoder side, for each CU, assuming the input is 4:4:4 source shown above, the rate-distortion cost is directly derived using the 4:4:4 encoding procedure with enable_chroma_subsampling = 0 or FALSE. The 4:4:4 subsamples process then samples to 4:2:0 to derive its bit consumption. The reconstructed 4:2:0 format is interpolated back to the 4:4:4 format for distortion measurement (using SSE/SAD). Along with the bit consumption, the rate-distortion cost is derived when encoding the CU in 4:2:0 space and compares the same with the cost when encoding the CU in 4:4:4. Any encoding that provides the lowest rate-distortion cost will be chosen for the final encoding. [0104] [0104] In Figure 15 the interpolation process from 4:4:4 to 4:2:0 and vice versa is illustrated. Usually this video color sampling format conversion process requires a large number of interpolation filters. [0105] [0105] To reduce deployment complexity, a HEVC interpolation filter (ie, DCT-IF) can be used. As shown in Figure 15, the "square box" represents the original 4:4:4 samples. From 4:4:4 to 4:2:0, the half-pel ("circle") pixels are interpolated using DCT-IF vertically for the chroma components. Quarter of pel ("diamond") positions are also shown for illustrative purposes. The gray shaded "circles" are chosen to form the 4:2:0 samples. For the 4:2:0 to 4:4:4 interpolation, the process starts with the gray "circles" in the chroma components, the half pel positions are interpolated horizontally to get all the "circles", and then , the "square boxes" are interpolated using DCT-IF vertically. All interpolated "square boxes" are chosen to form the reconstructed 4:4:4 font. Encoder Control [0106] [0106] As discussed in previous sections, flags are disclosed to control low-level processing. For example, enable_packed_component_flag is used to indicate whether the current CU uses its packed format or conventional flat format to encode processing. Whether to allow a compressed format could depend on the R-D cost calculated in the encoder. For a practical encoder implementation, a low complexity solution is obtained by analyzing the CU histogram and finding the best decision threshold, as shown in Figure 3. [0107] [0107] The size of the color palette table has a direct impact on the complexity. maxColorNum is introduced to control the trade-off between complexity and coding efficiency. The most direct way is to choose the one that produces the lowest R-D cost. [0108] [0108] The encoding direction of the index map could be determined by R-D optimization, or with the use of local spatial orientation (such as Sobel operator based on direction estimation). [0109] [0109] This disclosure limits processing within each CTU/CU. In practice, this restriction can be relaxed. For example, for a color index map processing, the row staging of your top and left CUs can be used, as shown in Figure 16. With an upper and left staging, the search can be extended to further improve coding efficiency. Since the top/left buffers are formed using pixels reconstructed from neighboring CUs, these pixels (as well as their corresponding indices) are available for reference before processing the current CU's index map. For example, after reordering, the current CU index map could be 14, 14, 14, …. 1, 2, 1 (as 1D presentation). Without a row temp reference, the first "14" will be encoded as an unmatched pair. However, with neighboring line buffering, string matching can start at the first pixel, as shown below (horizontal and vertical scan patterns are also shown). Decoder Syntax [0110] [0110] The following information can be used to describe the decoder shown in Figure 2. The syntax of this disclosure is aligned with a drafting committee of HEVC RExt. [0111] [0111] Figure 17 illustrates the apparatus and methods/flows incorporated into the current HEVC. [0112] [0112] The methods/flows and devices identified above may be incorporated into a wireless or wired communications network, or a combination thereof, and deployed in devices such as those described below, and in the drawings below: [0113] [0113] Figure 18 illustrates an exemplary communication system 100 that uses signaling to support advanced wireless receivers in accordance with this disclosure. In general, system 100 allows multiple wireless users to transmit and receive data and other content. System 100 may implement one or more channel access methods, such as code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), orthogonal FDMA ( OFDMA), or single-carrier FDMA (SC-FDMA). [0114] [0114] In this example, the communication system 100 includes user equipment (UE) 110a to 110c, radio access networks (RANs) 120a and 120b, a core network 130, a telephone network co- [0115] [0115] UEs 110a to 110c are configured to operate and/or communicate in system 100. For example, UEs 110a to 110c are configured to transmit and/or receive wireless signals or wired signals. Each UE 110a to 110c represents any suitable end user device and may include such devices (or may be termed) as a user equipment/device (UE), wireless transmit/receive unit (WTRU), mobile station, fixed or mobile subscriber unit, messaging device, cell phone, personal digital assistant (PDA), smart phone, laptop computer, computer, touch-sensitive device, wireless sensor, or consumer electronic device. [0116] [0116] RANs 120a and 120b here include base stations 170a and 170b, respectively. Each base station 170a and 170b is configured to wirelessly interface with one or more of the UEs 110a to 110c to allow access to the core network 130, the PSTN 140, the Internet 150, and/or other networks 160. For example , base stations 170a and 170b may include (or be) one or more of several well-known devices, such as a transceiver base station (BTS), a Node-B (NodeB), an evolved NodeB (eNodeB), a NodeB a residential eNodeB, a site controller, an access point (AP), or a wireless router, or a server, router, switch, or other processing entity with a wired or wireless network. [0117] [0117] In the embodiment shown in Figure 18, the base station 170a is part of the RAN 120a, which may include other base stations, elements and/or devices. In addition, base station 170b is part of RAN 120b, which may include other base stations, elements and/or devices. Each base station 170a and 170b operates to transmit and/or receive wireless signals within a particular geographic region or area, sometimes referred to as a "cell". In some embodiments, multiple input, multiple output (MIMO) technology that has multiple transceivers for each cell can be employed. [0118] [0118] The base stations 170a and 170b communicate with one or more of the UEs 110a to 110c over one or more air interfaces 190 using wireless communication links. The 190 air interfaces can utilize any suitable radio access technology. [0119] [0119] It is contemplated that system 100 may use multi-channel access functionality, which includes such schemes as described above. In particular embodiments, base stations and UEs deploy LTE, LTE-A and/or LTE-B. Naturally, other multiple access schemes and wireless protocols can be used. [0120] [0120] The RANs 120a and 120b are in communication with the main network 130 to provide the UEs 110a to 110c with voice, data, application, Voice over Internet Protocol (VoIP), or other services. Understandably, RANs 120a and 120b and/or core network 130 may be in direct or indirect communication with one or more other RANs (not shown). Core network 130 can also serve as a gateway to other networks (such as PSTN 140, Internet 150 and other networks 160). In addition, some or all UEs 110a to 110c may include functionality to communicate with different wireless networks over different wireless links using different wireless technologies and/or protocols. [0121] [0121] Although Figure 18 illustrates an example of a communication system, several changes can be made to Figure 18. For example, the communication system 100 could include any number of UEs, base stations, networks or other components in which- [0122] [0122] Figures 19A and 19B illustrate exemplary devices that can implement the methods and teachings in accordance with this disclosure. In particular, Figure 19A illustrates an example UE 110, and Figure 19B illustrates an example base station 170. These components could be used in system 100 or any other suitable system. [0123] [0123] As shown in Figure 19A, the UE 110 includes at least one processing unit 200. The processing unit 200 implements various processing operations of the UE 110. For example, the processing unit 200 could perform encoding signal processing, data processing, power control, input/output processing or any other functionality that allows the UE 110 to operate in system 100. The processing unit 200 also supports the methods and teachings described in more detail above. Each processing unit 200 includes any suitable processing or computing device configured to perform one or more operations. Each processing unit 200 could, for example, include a microprocessor, microcontroller, digital signal processor, field-programmable gate array, or application-specific integrated circuit. [0124] [0124] UE 110 also includes at least one transceiver 202. Transceiver 202 is configured to modulate data or other content for transmission by at least one antenna 204. Transceiver 202 is also configured to demodulate data or other content received by the at least one antenna 204. Each transceiver 202 includes any structure suitable for generating signals for wireless transmission and/or wireless received signal processing. Each antenna 204 includes any structure suitable for transmitting and/or receiving wireless signals. One or multiple transceivers 202 could be used in UE 110, and one or multiple antennas 204 could be used in UE 110. Although shown as a single functional unit, a transceiver 202 could also be deployed using at least one transmitter and at least one separate receiver. [0125] [0125] UE 110 additionally includes one or more input/output devices 206. Input/output devices 206 facilitate interaction with a user. Each input/output device 206 includes any structure suitable for providing information to or receiving information from a user, such as a speaker, microphone, numeric keypad, keyboard, viso, or touchscreen. [0126] [0126] In addition, the UE 110 includes at least one memory [0127] [0127] As shown in Figure 19B, base station 170 includes at least one processing unit 250, at least one transmitter 252, at least one receiver 254, one or more antennas 256, and at least one memory 258. processing 250 implements various processing operations of the base station 170, such as signal encoding, data processing, power control, input/output processing, or any other function. [0128] [0128] Each transmitter 252 includes any structure suitable for generating signals for wireless transmission to one or more UEs or other devices. Each receiver 254 includes any suitable structure for processing signals received wirelessly from one or more UEs or other devices. Although shown as separate components, at least one transmitter 252 and at least one receiver 254 could be combined into one transceiver. Each antenna 256 includes any structure suitable for transmitting and/or receiving wireless signals. Although a common antenna 256 is shown here as being coupled to both transmitter 252 and receiver 254, one or more antennas 256 could be coupled to transmitter(s) 252, and one or more separate antennas 256 could be coupled to. s) receiver(s) 254. Each memory 258 includes any suitable volatile(volatile) and/or nonvolatile(volatile) storage and retrieval device(s). [0129] [0129] Additional details with respect to UEs 110 and base stations 170 are known to persons skilled in the art. Therefore, these details are omitted here for the sake of clarity. [0130] [0130] It may be advantageous to present definitions of certain words and expressions used in this patent document. The terms "includes" and "comprises", as well as derivatives thereof, mean inclusion without limitation. The term "or" is inclusive and means and/or. [0131] [0131] Although this disclosure has described certain modalities and associated generic methods, alterations and permutations of those modalities and methods will be apparent to those of skill in the art. Accordingly, the above description of exemplary embodiments does not define or limit this disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this revelation, as defined by the following embodiments.
权利要求:
Claims (24) [1] 1. Method for encoding screen content into a bit stream, characterized in that the method comprises the steps of: dividing the screen content into a plurality of encoding units (CUs), wherein each CU comprises a plurality of pixels and where each pixel has a numeric value; creating a color palette table for a first coding unit (CU) of the plurality of CUs, where the color palette comprises a plurality of entries, and where the plurality of entries indicates the most frequent numerical values the plurality of pixels of the first CU; creating a first color index map for the first CU, the first color index map comprising an entry for each pixel of the first CU, wherein each entry in the color index map comprises an index within the palette table of colors; creating a second color index map for a second CU of the plurality of CUs, the second color index map comprising an entry for each pixel in the second CU, wherein each entry in the second color index map comprises an index within the color palette table; create a first prediction residual table comprising an entry for each pixel in the first CU, where each entry in the first prediction residual table comprises the difference between the numeric value of the color palette table entry corresponding to the input of first color index map for that pixel and the numeric value of that pixel; create a second prediction residual table comprising an entry for each pixel in the second CU, where each end. translated in the second prediction residual table comprises a difference between the numerical value of the color palette table entry corresponding to the second color index map entry for that pixel and the numerical value of that pixel; and encoding the color palette table, the first color index map, the second color index map, the first prediction residual table, and the second prediction residual table into a bit stream. [2] 2. Method according to claim 1, characterized in that the method is processed using a flat color format. [3] 3. Method according to claim 1, characterized in that the color palette table is derived from a neighboring CU using a reconstructed CU in a pixel domain. [4] 4. Method according to claim 3, characterized in that it further comprises the step of generating a color palette table of the neighboring CU based on available reconstructed pixels, wherein the neighboring CU has different depth and size than the first CU. [5] 5. Method according to claim 3, characterized in that it further comprises the step of generating the color palette table of the neighboring CU based on available reconstructed pixels, in which the neighboring CU has the same depth and size than the first CU. [6] 6. Method according to claim 1, characterized in that generating the color palette table comprises creating a histogram of numerical values of the plurality of pixels in the first CU, ordering the histogram of the most frequent numerical value to ra the least frequent numeric value, and create a color palette table entry for the most frequent numeric value. [7] 7. Method according to claim 6, characterized in that generating the first color index map comprises comparing the numerical value of each pixel in the first CU with each color palette table entry and creating an entry in the first color index map for each pixel in the first CU, where the entry in the first color index map corresponds to the color palette table entry whose value most closely approximates the numerical value of that pixel, in that generating the second color index map comprises comparing the numerical value of each pixel in the second CU with each color palette table entry and creating an entry in the second color index map for each pixel in the second CU, where the The entry in the second color index map corresponds to the color palette table entry whose value most closely matches the numeric value of that pixel. [8] 8. Method according to claim 1, characterized in that it further comprises the step of encoding a color palette table size in the bit stream. [9] 9. Method according to claim 1, characterized in that it further comprises the step of encoding an indicator of a spatial relationship between the first CU and the second CU within the screen content in the bit stream. [10] 10. The method of claim 1, characterized in that encoding the first color index map comprises performing a one-dimensional string math operation, wherein the string math operation searches for matches in a single direction, and where a string match is signaled using match pairs. [11] 11. Method according to claim 10, characterized in that the mathematical operation of a string res is executed on a plurality of adjacent pixels using a hash method of execution. [12] 12. Method according to claim 1, characterized in that the method is processed using an interleaved color format. [13] 13. Method according to claim 1, characterized in that generating the color palette table further comprises creating a color palette table entry for each unique numerical value found in the pixel plurality in the first ASS. [14] 14. Method according to claim 1, characterized in that encoding the first color index map comprises performing a two-dimensional character string mathematical operation, wherein encoding the second color index map colors comprises performing the two-dimensional string math operation, where the two-dimensional string math operation searches for matches in a single direction per dimension, and where a string match is flagged using matching pairs. [15] 15. Method according to claim 14, characterized in that the mathematical operation of string of characters is performed on a rectangular block of adjacent pixels using a hash method of execution. [16] 16. Method according to claim 1, characterized in that encoding the first color index map comprises performing a one-dimensional hybrid character string mathematical operation, wherein encoding the second index map Coloring comprises performing the one dimension hybrid string math operation, where the one dimension hybrid string math operation searches for matches in two directions by dimension, and where a string match of characters is signaled using matching pairs. [17] 17. Method according to claim 16, characterized in that the mathematical operation of string of characters is performed on a rectangular block of adjacent pixels using a hash method of execution. [18] 18. Method according to claim 1, characterized in that for a first entry in the first color index map for the first CU: perform a first search in a vertical direction for a first string of characters of entries in the first color index map, where each entry in the first character string has the same value as the first entry; perform a second search in a horizontal direction for a second string of entries in the first color index map, where each entry in the second string has the same value as the first entry; and encoding a portion of the first color index map in accordance with the results of the first search and the second search, wherein encoding comprises inserting, into the bit stream, a search direction flag, an indicator of the value of index of the first entry, and an indicator of the length of the string of entries in the first color index map having the same index value as the first entry. [19] 19. Method according to claim 18, characterized in that coding a portion of the first color index map according to the results of the first search and the second search further comprises: determining the fee cost -distortion (RD) associated with encoding the first string of characters; and determining the RD cost associated with encoding the second string, wherein, when the RD cost associated with encoding the first string of characters is less than the RD cost associated with encoding the second string, the direction flag indicates the vertical direction and the string length indicator of entries in the index map is an indicator of the length of the first string of characters, and where, when the RD cost associated with encoding the sec. - second string is less than the RD cost associated with encoding the first string, the direction flag indicates the horizontal direction, and the string length indicator of entries in the index map is an indicator of length. - ment of the second string of characters. [20] 20. A system for encoding screen content into a bit stream, the system comprising: a memory comprising a plurality of encoding units (CUs), wherein the plurality of CUs represents screen content, wherein each CU comprises a plurality of pixels, and where each pixel has a numerical value; and a memory-coupled processor (12), characterized in that the processor (12) is configured to: create a color palette table for a CU of the plurality of CUs, where the color palette colors comprise a plurality of inputs, the plurality of inputs indicating the most frequent numerical values of the plurality of pixels of the first CU; creating a first color index map for the first CU, the first color index map comprising an entry for each pixel of the first CU, wherein each entry in the color index map comprises an index within the palette table of co- res; creating a second color index map for a second CU of the plurality of CUs, the second color index map comprising an entry for each pixel in the second CU, wherein each entry in the second color index map comprises an index within the color palette table; creating a first prediction residual table, the first prediction residual table comprising an entry for each pixel in the first CU, wherein each entry in the first prediction residual table comprises the difference between the color palette table value corresponding to the first input color index map for that pixel and the numeric value of that pixel; creating a second prediction residual table, the second prediction residual table comprising an entry for each pixel in the second CU, wherein each entry in the second prediction residual table comprises a difference between the color palette table value corresponding to the input of the second color index map for that pixel and the numeric value of that pixel; and encoding the color palette table, the first color index map, the first residual prediction table, the second residual prediction table, and the second color index map into a bitstream. [21] 21. System according to claim 20, characterized in that the CUs represent the screen content using a flat color format. [22] 22. System according to claim 20, characterized in that the CUs represent the screen content using an interleaved color format. [23] 23. System according to claim 20, characterized in that the processor (12) is further configured to create the color palette table by creating a histogram of numerical values of the plurality of pixels in the first CU, sort the histogram from the most frequent numeric value to the least frequent numeric value, and creating a color palette table entry for the most frequent numeric value. [24] 24. System according to claim 20, characterized in that the processor (12) is further configured to generate the first color index map by comparing the numerical value of each pixel in the first CU with each color palette table entry and create an entry in the first color index map for each pixel in the first CU, where the entry in the first color index map corresponds to the color palette table entry whose value the most approximates the numerical value of that pixel, wherein the processor (12) is further configured to generate the second color index map comprises comparing the numerical value of each pixel in the second CU with each color palette table entry and creating a entry in the second color index map for each pixel in the second CU, where the entry in the second color index map corresponds to the color palette table entry whose value most closely matches the numerical value of that pixel.
类似技术:
公开号 | 公开日 | 专利标题 BR112016011471A2|2021-05-18|ADVANCED SCREEN CONTENT CODING SOLUTION KR101906740B1|2018-10-10|Advanced screen content coding with improved palette table and index map coding methods JP2020156113A|2020-09-24|Palette coding for screen content coding KR101951083B1|2019-05-10|Two-dimensional palette coding for screen content coding JP5922245B2|2016-05-24|Adaptive loop filtering for chroma components. TW202005377A|2020-01-16|Improved palette coding for screen content coding JP5766874B2|2015-08-19|Intra prediction mode coding using directional partitions JP2016528796A|2016-09-15|Rice parameter initialization for coefficient level coding in video coding process KR101752612B1|2017-06-29|Method of sample adaptive offset processing for video coding KR20140007465A|2014-01-17|Intra-prediction method, and encoder and decoder using same JP2019530345A|2019-10-17|Illuminance compensation based inter prediction method and apparatus in video coding system CN110720223A|2020-01-21|Dual deblocking filter threshold IL245752A|2020-10-29|Advanced screen content coding solution US20210329297A1|2021-10-21|Intra prediction method and device, and computer storage medium BR112021006138A2|2021-06-29|component image prediction method applied to a decoder, component video prediction device applied to a decoder, and computer readable storage media WO2022035687A1|2022-02-17|Chroma coding enhancement in cross-component sample adaptive offset WO2021061998A1|2021-04-01|Simplified palette predictor update for video coding CN112823526A|2021-05-18|Method and apparatus for processing video signal by using cross-component linear model WO2021247883A1|2021-12-09|Chroma coding enhancement in cross-component correlation WO2022040428A1|2022-02-24|Chroma coding enhancement in cross-component sample adaptive offset WO2022046903A1|2022-03-03|Chroma coding enhancement in cross-component sample adaptive offset
同族专利:
公开号 | 公开日 CN105745671B|2019-09-13| JP6294482B2|2018-03-14| HK1220531A1|2017-05-05| RU2646355C2|2018-03-02| MX362406B|2019-01-16| US10291827B2|2019-05-14| KR101972936B1|2019-04-26| EP3063703A4|2016-10-19| CN105745671A|2016-07-06| US20150146976A1|2015-05-28| RU2016124544A|2017-12-27| MX2016006612A|2017-04-25| WO2015077720A1|2015-05-28| CA2931386A1|2015-05-28| EP3063703A1|2016-09-07| UA118114C2|2018-11-26| CA2931386C|2020-06-09| JP2017502561A|2017-01-19| AU2014352656B2|2017-06-22| AU2014352656A1|2016-06-23| KR20160085893A|2016-07-18| CL2016001224A1|2016-12-09| NZ720776A|2017-09-29|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 JPS5484416A|1977-12-19|1979-07-05|Ricoh Co Ltd|Meothod and device for transmission and reception of telautogram information| US5463702A|1992-05-12|1995-10-31|Sony Electronics Inc.|Perceptual based color-compression for raster image quantization| US5848195A|1995-12-06|1998-12-08|Intel Corporation|Selection of huffman tables for signal encoding| US5930390A|1996-03-28|1999-07-27|Intel Corporation|Encoding/decoding signals using a remap table| JPH11161782A|1997-11-27|1999-06-18|Seiko Epson Corp|Method and device for encoding color picture, and method and device for decoding color picture| US6597812B1|1999-05-28|2003-07-22|Realtime Data, Llc|System and method for lossless data compression and decompression| US6522783B1|1999-11-23|2003-02-18|Sharp Laboratories Of America, Inc.|Re-indexing for efficient compression of palettized images| US6674479B2|2000-01-07|2004-01-06|Intel Corporation|Method and apparatus for implementing 4:2:0 to 4:2:2 and 4:2:2 to 4:2:0 color space conversion| US7162077B2|2001-10-19|2007-01-09|Sharp Laboratories Of America, Inc.|Palette-based image compression method, system and data file| US6898313B2|2002-03-06|2005-05-24|Sharp Laboratories Of America, Inc.|Scalable layered coding in a multi-layer, compound-image data transmission system| US7120297B2|2002-04-25|2006-10-10|Microsoft Corporation|Segmented layered image system| US7016547B1|2002-06-28|2006-03-21|Microsoft Corporation|Adaptive entropy encoding/decoding for screen capture content| US7343037B1|2004-02-04|2008-03-11|Microsoft Corporation|Dynamic, locally-adaptive, lossless palettization of color and grayscale images| JP4515832B2|2004-06-14|2010-08-04|オリンパス株式会社|Image compression apparatus and image restoration apparatus| KR101161900B1|2004-07-08|2012-07-03|텔레폰악티에볼라겟엘엠에릭슨|Multi-mode image processing| ES2569419T3|2005-05-27|2016-05-10|Telefonaktiebolaget Lm Ericsson |Weight based image processing| US7468733B2|2004-10-06|2008-12-23|Microsoft Corporation|Method and system for improving color reduction| JP2007108877A|2005-10-11|2007-04-26|Toshiba Corp|Information management system and information display device| JP4367418B2|2006-01-20|2009-11-18|セイコーエプソン株式会社|Print control device| US8130317B2|2006-02-14|2012-03-06|Broadcom Corporation|Method and system for performing interleaved to planar transformation operations in a mobile terminal having a video display| US8243340B2|2006-02-23|2012-08-14|Microsoft Corporation|Pre-processing of image data for enhanced compression| JP4816262B2|2006-06-06|2011-11-16|ソニー株式会社|Playback apparatus, playback method, and playback program| WO2009002603A1|2007-06-25|2008-12-31|L-3 Communications Avionics Systems, Inc.|Systems and methods for generating, storing and using electronic navigation charts| US20090010533A1|2007-07-05|2009-01-08|Mediatek Inc.|Method and apparatus for displaying an encoded image| TWI452537B|2008-02-21|2014-09-11|Generalplus Technology Inc|Method for processing image, methods for applying to digital photo frame and interaction image process| US8326067B2|2009-02-27|2012-12-04|Research In Motion Limited|Optimization of image encoding using perceptual weighting| JP5052569B2|2009-06-25|2012-10-17|シャープ株式会社|Image compression apparatus, image compression method, image expansion apparatus, image expansion method, image forming apparatus, computer program, and recording medium| CN105959688B|2009-12-01|2019-01-29|数码士有限公司|Method for decoding high resolution image| KR101682147B1|2010-04-05|2016-12-05|삼성전자주식회사|Method and apparatus for interpolation based on transform and inverse transform| US8600158B2|2010-11-16|2013-12-03|Hand Held Products, Inc.|Method and system operative to process color image data| KR101506446B1|2010-12-15|2015-04-08|에스케이 텔레콤주식회사|Code Motion Information Generating/Motion Information Reconstructing Method and Apparatus Using Motion Information Merge and Image Encoding/Decoding Method and Apparatus Using The Same| MX2014003554A|2011-09-27|2014-06-05|Koninkl Philips Nv|Apparatus and method for dynamic range transforming of images.| US8615138B2|2011-11-03|2013-12-24|Google Inc.|Image compression using sub-resolution images| CN102611888B|2011-11-18|2014-07-23|北京工业大学|Encoding method for screen content| US9262986B2|2011-12-07|2016-02-16|Cisco Technology, Inc.|Reference frame management for screen content video coding using hash or checksum functions| JP2014107742A|2012-11-28|2014-06-09|Toshiba Corp|Image encoding device, image decoding device, image encoding method, and image decoding method| US11259020B2|2013-04-05|2022-02-22|Qualcomm Incorporated|Determining palettes in palette-based video coding| US9558567B2|2013-07-12|2017-01-31|Qualcomm Incorporated|Palette prediction in palette-based video coding| RU2666635C2|2013-10-14|2018-09-11|МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи|Features of base colour index map mode for video and image coding and decoding| US10291827B2|2013-11-22|2019-05-14|Futurewei Technologies, Inc.|Advanced screen content coding solution| EP3090559A2|2014-01-02|2016-11-09|VID SCALE, Inc.|Two-dimensional palette coding for screen content coding| MY175688A|2014-03-14|2020-07-06|Vid Scale Inc|Palette coding for screen content coding| US9826242B2|2014-03-14|2017-11-21|Qualcomm Incorporated|Palette-based video coding| EP3055830A4|2014-03-21|2017-02-22|Huawei Technologies Co., Ltd.|Advanced screen content coding with improved color table and index map coding methods|BR122019025405A2|2011-01-13|2020-02-18|Canon Kabushiki Kaisha|IMAGE ENCODING EQUIPMENT, IMAGE ENCODING METHOD, IMAGE DECODING EQUIPMENT, IMAGE DECODING METHOD AND STORAGE MEDIA| WO2015054813A1|2013-10-14|2015-04-23|Microsoft Technology Licensing, Llc|Encoder-side options for intra block copy prediction mode for video and image coding| CN105765974B|2013-10-14|2019-07-02|微软技术许可有限责任公司|Feature for the intra block of video and image coding and decoding duplication prediction mode| RU2666635C2|2013-10-14|2018-09-11|МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи|Features of base colour index map mode for video and image coding and decoding| US10291827B2|2013-11-22|2019-05-14|Futurewei Technologies, Inc.|Advanced screen content coding solution| CN105981380B|2013-12-18|2019-08-20|寰发股份有限公司|Utilize the method and apparatus of the encoded video data block of palette coding| WO2015090217A1|2013-12-18|2015-06-25|Mediatek Inc.|Method and apparatus for palette table prediction| US10972742B2|2013-12-19|2021-04-06|Canon Kabushiki Kaisha|Encoding process using a palette mode| WO2015096812A1|2013-12-27|2015-07-02|Mediatek Inc.|Method and apparatus for palette coding with cross block prediction| CA3020374C|2013-12-27|2021-01-05|Hfi Innovation Inc.|Method and apparatus for syntax redundancy removal in palette coding| EP3087743A4|2013-12-27|2017-02-22|HFI Innovation Inc.|Method and apparatus for major color index map coding| EP3090559A2|2014-01-02|2016-11-09|VID SCALE, Inc.|Two-dimensional palette coding for screen content coding| US10390034B2|2014-01-03|2019-08-20|Microsoft Technology Licensing, Llc|Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area| EP3090553A4|2014-01-03|2017-12-20|Microsoft Technology Licensing, LLC|Block vector prediction in video and image coding/decoding| US10484696B2|2014-01-07|2019-11-19|Mediatek Inc.|Method and apparatus for color index prediction| US10542274B2|2014-02-21|2020-01-21|Microsoft Technology Licensing, Llc|Dictionary encoding and decoding of screen content| US20150264361A1|2014-03-13|2015-09-17|Huawei Technologies Co., Ltd.|Method for screen content coding| US20150264345A1|2014-03-13|2015-09-17|Mitsubishi Electric Research Laboratories, Inc.|Method for Coding Videos and Pictures Using Independent Uniform Prediction Mode| EP3055830A4|2014-03-21|2017-02-22|Huawei Technologies Co., Ltd.|Advanced screen content coding with improved color table and index map coding methods| KR102319384B1|2014-03-31|2021-10-29|인텔렉추얼디스커버리 주식회사|Method and apparatus for intra picture coding based on template matching| US10091512B2|2014-05-23|2018-10-02|Futurewei Technologies, Inc.|Advanced screen content coding with improved palette table and index map coding methods| CN105323583B|2014-06-13|2019-11-15|财团法人工业技术研究院|Coding method, coding/decoding method, coding/decoding system, encoder and decoder| WO2015192353A1|2014-06-19|2015-12-23|Microsoft Technology Licensing, Llc|Unified intra block copy and inter prediction modes| US10313684B2|2014-06-20|2019-06-04|Qualcomm Incorporated|Copy from previous rows for palette mode coding| US9955157B2|2014-07-11|2018-04-24|Qualcomm Incorporated|Advanced palette prediction and signaling| US9544607B2|2014-08-25|2017-01-10|Hfi Innovation Inc.|Method of palette index signaling for image and video coding| CN105874795B|2014-09-30|2019-11-29|微软技术许可有限责任公司|When wavefront parallel processing is activated to the rule of intra-picture prediction mode| CN107005707A|2014-10-31|2017-08-01|三星电子株式会社|Method and apparatus for being encoded or being decoded to image| JP2018505604A|2015-01-14|2018-02-22|ヴィド スケール インコーポレイテッド|Palette coding for non 4: 4: 4 screen content video| JP6122516B2|2015-01-28|2017-04-26|財團法人工業技術研究院Industrial Technology Research Institute|Encoding method and encoder| US10448058B2|2015-05-21|2019-10-15|Qualcomm Incorporated|Grouping palette index at the end and index coding using palette size and run value| CN107637057A|2015-06-03|2018-01-26|联发科技股份有限公司|The palette decoding method of image and video data| CN106664405B|2015-06-09|2020-06-09|微软技术许可有限责任公司|Robust encoding/decoding of escape-coded pixels with palette mode| WO2016197392A1|2015-06-12|2016-12-15|Mediatek Singapore Pte. Ltd.|Improvements for non-local index prediction| US10148977B2|2015-06-16|2018-12-04|Futurewei Technologies, Inc.|Advanced coding techniques for high efficiency video codingscreen content codingextensions| GB2539486B|2015-06-18|2019-07-31|Gurulogic Microsystems Oy|Encoder, decoder and method employing palette compression| GB2542858A|2015-10-02|2017-04-05|Canon Kk|Encoder optimizations for palette encoding of content with subsampled colour component| CN107710760A|2015-10-15|2018-02-16|富士通株式会社|Method for encoding images, device and image processing equipment| JP6593122B2|2015-11-20|2019-10-23|富士通株式会社|Moving picture coding apparatus, moving picture coding method, and program| CN107071450B|2016-02-10|2021-07-27|同济大学|Coding and decoding method and device for data compression| US10986349B2|2017-12-29|2021-04-20|Microsoft Technology Licensing, Llc|Constraints on locations of reference blocks for intra block copy prediction| US10949087B2|2018-05-15|2021-03-16|Samsung Electronics Co., Ltd.|Method for rapid reference object storage format for chroma subsampled images| US11265579B2|2018-08-01|2022-03-01|Comcast Cable Communications, Llc|Systems, methods, and apparatuses for video processing| US10848787B2|2018-08-28|2020-11-24|Google Llc|Lossy image compression using palettization of locally mixed colors| CN109819254A|2019-01-31|2019-05-28|深圳市战音科技有限公司|A kind of image compression transmission method damaged and system| WO2021040398A1|2019-08-26|2021-03-04|엘지전자 주식회사|Image or video coding based on palette escape coding| WO2021040402A1|2019-08-26|2021-03-04|엘지전자 주식회사|Image or video coding based on palette coding| WO2021040400A1|2019-08-26|2021-03-04|엘지전자 주식회사|Image or video coding based on palette mode| WO2021061281A1|2019-09-24|2021-04-01|Futurewei Technologies, Inc.|Signaling of picture header in video coding| US11076151B2|2019-09-30|2021-07-27|Ati Technologies Ulc|Hierarchical histogram calculation with application to palette table derivation| CN111246208A|2020-01-22|2020-06-05|北京字节跳动网络技术有限公司|Video processing method and device and electronic equipment|
法律状态:
2020-03-24| B06U| Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]|
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 US201361907903P| true| 2013-11-22|2013-11-22| US61/907,903|2013-11-22| US14/549,405|US10291827B2|2013-11-22|2014-11-20|Advanced screen content coding solution| US14/549,405|2014-11-20| PCT/US2014/067155|WO2015077720A1|2013-11-22|2014-11-24|Advanced screen content coding solution| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|